﻿//#define _CRT_SECURE_NO_WARNINGS//                               打印杨辉三角
//#include<stdio.h>
//int main()
//{
//	int arr[8][8] = { 0 };
//	
//	int i = 0;
//	int j = 0;
//
//	for (i = 0; i < 8; i++)
//	{
//		for (j = 0; i >= j; j++)
//		{
//			if (j == 0 || i == j)
//			{
//				arr[i][j] = 1;
//			}
//			else
//				arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];
//		}
//	}
//	for (i = 0; i < 8; i++)
//	{
//		for (j = 0; j < 8; j++)
//		{
//			if (i >= j)
//			{
//				printf("%2d  ",  arr[i][j]);
//			}
//		}
//		printf("\n");
//	}
//	return 0;
//}
//                                                                四人找凶手
//#include<stdio.h>
//int main()
//{
//	for (int i = 'a'; i <= 'd'; i++)
//	{
//		if ((i != 'a') + (i == 'c') + (i == 'd') + (i != 'd') == 3 )
//		{
//			printf("凶手是%c ", i);
//		}
//	}
//	return 0;
//}
//#include<stdio.h>//                                          结构体大小计算
//struct S2
//{
//	char c1;
//	char c2;
//	int i;
//};
//struct S3
//{
//	struct S2 b;
//	int j;
//};
//int main()
//{
//	printf("%d ", sizeof(struct S3));
//
//	return 0;
//}
//声明一个结构体
//const typedef struct student
//{
//	char Name[15];//名字
//	int Age;//年龄
//	char Gender[5];//性别
//}student;
//
//#include<stdio.h>
//
//void print_t(struct student * const pc)
//{
//	printf("%s %d %s\n", (*pc).Name, (*pc).Age, (*pc).Gender);//第一种解引用打印方式
//
//
//	printf("%s %d %s\n", pc->Name, pc->Age, pc->Gender);//第二种指针指向方式
//}
//
//int main()
//{
//	const student s1 = { "小王",18,"男"};//结构体的初始化
//
//	print_t(&s1);
//
//	return 0;
//}
//#include<stdio.h>
//#include<stddef.h>
//
//struct s2
//{
//	char i = 'a';
//	int k = 8;
//	int j = 9;
//	
//}p2;
//
//void text(struct s2 p)
//{
//	printf("%c %d %d", p.i, p.k, p.j);
//}
//int main()
//{
//
//	text(p2);
//
//	return 0;
//}
//
//#pragma pack()//恢复最大对齐数
//
//struct s3
//{
//	char s;
//};
//
//#pragma pack(4)//设置对齐数为4
//
//struct s4
//{
//	int i;
//};

//int main()
//{
//
//	printf("%d\n", offsetof(struct s2, arr));
//	printf("%d\n", offsetof(struct s2, i));
//	printf("%d\n", offsetof(struct s2, j));
//
//	return 0;
//}//                                                        1.8
//#include<stdio.h>

//struct student
//{
//	char c : 3;
//	char a : 2;    //类型+变量名+冒号+分配内存数
//};
//
//int main()
//{
//	struct student s1;
//	s1.c = 11;
//	s1.a = 10;
//
//	printf("%d\n", sizeof(struct student));
//
//	return 0;
//}
//#include<stdio.h>
//#define _CRT_SECURE_NO_WARNINGS
//
//union Color 
//{
//	int a[7];
//	char b;
//	double c;
//}low;//创建联合变量
//
//int main()
//{
//	printf("%d\n", sizeof(Color));
//
//	return 0;
//}
//                                                          1.9位段
// 
// 
//#include <malloc.h>
//#define MAX_SIZE  5
//
//struct _Record_Struct
//{
//	unsigned char Env_Alarm_ID : 4;
//	unsigned char Para1 : 2;
//	unsigned char state;
//	unsigned char avail : 1;
//}*Env_Alarm_Record;
//
//struct _Record_Struct* pointer = (struct _Record_Struct*)malloc(sizeof(struct _Record_Struct) * 5);
//
////pointer分配（ ）个字节的空间。


//#include<string.h>
//#include<stdio.h>
//int main()
//{
//    unsigned char puc[4];
//    
//    struct tagPIM
//    {
//        unsigned char ucPim1;
//        unsigned char ucData0 : 1;
//        unsigned char ucData1 : 2;
//        unsigned char ucData2 : 3;
//    }*pstPimData;//创建一个指针指向这个结构体
//
//    pstPimData = (struct tagPIM*)puc;//结构体指针数组
//
//    memset(puc, 0, 4);//数组类容全部为0
//
//    pstPimData->ucPim1 = 2;
//    pstPimData->ucData0 = 3;
//    pstPimData->ucData1 = 4;
//    pstPimData->ucData2 = 5;
//
//    printf("%02x %02x %02x %02x\n", puc[0], puc[1], puc[2], puc[3]);
//    return 0;
//}
//                                                                   1.12
//#include<stdio.h>
//int main()
//{
//	int a = 10;
//	char arr[15];
//	int urr[15];
//
//	return 0;
//}
// 
// 
//#include<stdio.h>
//#include<stdlib.h>
//
//int main()
//{
//	//开辟16个字节大小的空间
//	int* p = (int*)malloc(16);
//	
//	//判断空指针
//	if (p == NULL)
//	{
//		//告诉你错误地方
//		perror("malloc");
//		//直接结束程序
//		return 1;
//	}
//
//	//使用
//	for (int i = 0; i < 4; i++)
//	{
//		*(p + i) = i + 1;
//	}
//	for (int i = 0; i < 4; i++)
//	{
//		printf("%d ", *(p+i));
//	}
//	free(p);
//	p = NULL;
//	return 0;
//}
//                                         1.13
//#include<stdio.h>
//#include<string.h>
//#include<errno.h>
//#include<stdlib.h>
//#define _CRT_SECURE_NO_WARNINGS
//
//int main()
//{
//	//开辟16字节大小的空间
//	int* p = (int*)calloc(4, sizeof(int));
//
//	//判断空间的有效性
//	if (p == NULL)
//	{
//		printf("%s\n", strerror(errno));
//		return 1;
//	}
//
//	//使用空间
//	for (int i = 0; i < 4; i++)
//	{
//		*(p + i) = i;
//	}
//
//	//释放空间
//	free(p);
//	p = NULL;
//
//	return 0;
//}
//#include"text.h"
//int main()
//{
//	NewPointer(&)
//
//	return 0;
//}

//#include"text.h"
//int main()
//{
//	Pointdef* head = NULL;
//	int x = 100;
//	Pointdef* cur = (*head)->next;
//	//遍历
//	Traversal(head);
//	//头插
//	HeadPointer(&head);
//	//尾插
//	NewPointer(&head);
//	//尾删
//	Taildeletion(&head);
//	//头删
//	Headdeletion(&head);
//	//查找
//	Find(head,x);
//	//中间插入
//	Middle(&head, cur,x);
//	return 0;
//}
//#include<stdio.h>
//void Pointer(int* pc)
//{
//	*pc = 20;
//}
//int main()
//{
//	int a = 10;
//	int* pc = &a;
//
//	Pointer(pc);
//
//	printf("%d\n", a);
//	return 0;
//}